package munyorderweb_Android;

import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import munyorderweb_DB.DB_manager;

public class PostCustomerServlet extends HttpServlet {

	@Override
	protected void doPost(
			HttpServletRequest req,
			HttpServletResponse resp)
					throws ServletException, IOException {
		req.setCharacterEncoding("UTF-8");

		Connection con = null;
		try{
			con = DB_manager.getConnection();
			Statement stm = con.createStatement();

//		1	会計用ナンバー変更用のサーブレット (+端末情報の列追加予定)

			Map<String, String[]> map = req.getParameterMap();

//			String[] Ta_no = (String[])map.get("table_no");
			String[] Cu_no = (String[])map.get("customer_no");
			String[] Cu_to = (String[])map.get("customer_total");

//			上記項目のいずれかが取得できない場合、処理結果として「SC_BAD＿REQEST（４００）」を返して終了する。
			if (Cu_to.length == 0
					/*|| Ta_no.length == 0*/
					|| Cu_no.length == 0)
			{
				resp.setStatus(HttpServletResponse.SC_BAD_REQUEST);
			}
			else {
				for(int i=0; i<Cu_no.length; i++){

//					String Ta_No  = Ta_no[i];
					String Cu_No  = Cu_no[i];
//					String Cu_To  = Cu_to[i];

//				会計用番号が整数でない場合、処理結果として「SC＿BAD_REQEST（４００）」を返して終了する。
					if(Integer.parseInt(Cu_No) < 1){
						resp.setStatus(HttpServletResponse.SC_BAD_REQUEST);
					}else{

						//テーブル番号は端末番号を付けた時に
//						System.out.println("Key :  " + Ta_No);
						System.out.println("Key :  " + Cu_No);
//						System.out.println("Key :  " + Cu_To);

//				customerテーブルの会計情報を変更する (+端末情報の列追加予定)
						String sql = "Update customer SET customer_total = 1" +
								" WHERE customer_no = " + Cu_No
								/*+ " AND table_no = " + Ta_No*/;
						stm.executeUpdate(sql);
//			例外が発生した場合、「SC_SERVICE_UNAVAILABLE（５０３）」を返して終了する。
					}
				}
			}
		}catch(SQLException e){
			e.printStackTrace();
			resp.setStatus(HttpServletResponse.SC_SERVICE_UNAVAILABLE);
		}finally{
			try{
				if(con != null){
					con.close();
				}
			}catch (SQLException e){
				e.printStackTrace();
			}
		}

//	3	処理結果として「SC＿OK（２００）」を返して終了する。
		resp.setStatus(HttpServletResponse.SC_OK);
	}
}